+++ /dev/null
-#
-# Legacy makefile hook for GPSBabel.pro
-# This lets us determine the tests when make is run instead
-# of when qmake is run.
-# The make parallel execution feature can be used.
-#
-# GPSBabel requires a reasonably recent version of GNU Make.
-# We rely on very few fancy features of make so the exact version
-# probably doesn't much matter. GNU Make 3.81 seems a reasonable target.
-#
-
-srcdir = .
-builddir = .
-
-TESTCASES := $(sort $(wildcard $(srcdir)/testo.d/*.test))
-VGLOGS := $(addprefix $(builddir)/testo.d/, $(addsuffix .vglog, $(basename $(notdir $(TESTCASES)))))
-
-%.vglog: FORCE
- @mkdir -p $(builddir)/testo.d
- @$(srcdir)/vtesto -l -j $@ $(basename $(notdir $@))
-
-# Declaring a target PHONY whose names matches a subdirectory can be
-# particularly important, e.g. gui.
-.PHONY: all clean check-vtesto
-
-all: check-vtesto
-
-clean:
- rm -f $(VGLOGS)
-
-check-vtesto:
- @$(MAKE) -f $(srcdir)/Makefile_vtesto $(VGLOGS)
-
-FORCE:
+++ /dev/null
-/Makefile
-/stdarg
+++ /dev/null
-#include <stdarg.h>
-int main() { return 0; }
+++ /dev/null
-SOURCES = main.cpp
+++ /dev/null
-/Makefile
-/unistd
+++ /dev/null
-#include <unistd.h>
-int main() { return 0; }
+++ /dev/null
-SOURCES = main.cpp
+++ /dev/null
-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/robertl/xerces-c1_7_0-linux7.2/lib
-export PATH=$PATH:/home/robertl/xerces-c1_7_0-linux7.2/bin
-
-validate()
-{
- SAX2Count -p -f -v=always $*
-}
-
-gpxval()
-{
- echo "Validating $*"
- ./gpsbabel $* -o gpx -F /tmp/$$.gpx
- validate /tmp/$$.gpx
- ./gpsbabel $* -o gpx,gpxver=1.0 -F /tmp/$$.gpx
- validate /tmp/$$.gpx
- ./gpsbabel $* -o gpx,gpxver=1.1 -F /tmp/$$.gpx
- validate /tmp/$$.gpx
-}
-
-
-# gpxval "-i gpx -f reference/holux.gpx"
-gpxval -i mapsend -f reference/chicago.trk
-
-SAX2Count reference/holux.gpx
-
-# Routes
-
-# gpxval -i gpx -f reference/route/blah.gpx
-gpxval -i magellan -f reference/route/magellan.rte
-gpxval -i psitrex -f reference/route/psitrtes.txt
-# gpxval -i gpx -f reference/route/route.gpx
-gpxval -i mapsend -f reference/route/route.mapsend
-gpxval -i mapsource -f reference/route/route.mps
-
-# Tracks
-
-gpxval -i mapsource -f reference/route/route.mps
+++ /dev/null
-The following description was provided courtesy of the guys at Brauniger,
-translated from German by Google:
-
-<begin>
-
-IQ-GPS PC data communication
-============================
-Description of the sequence for the transmission of barograms IQ-GPS over the
-serial interface (9600 Baud, 8, NO parity):
-
-All values are binary coded, with exception of the Pilot names.
-
-* 48, 49, 50, 51, 52, 53 (to the synchronisation)
-* 1 byte flight number
-* high and low - byte of the number of still following bytes
-* high and low - byte of the serial number
-* 25 byte pilot name (ASCII)
-* high and low - byte of the starting date (e.g. 1309 for 13.09)
-* high and low - byte of the starting year (e.g. 1995)
-* high and low - byte of the maximum height 1
-* high and low - byte of the maximum height 2
-* high and low - byte of the maximum rise
-* high and low - byte of the flying time in minutes
-* 1 byte for the logging period (e.g. 5 for 5 seconds)
-* high and low - byte of the starting time (e.g. 1105 for 11:05)
-* high and low - byte of the stop time (e.g. 1305 for 13:05)
- * for future extensions: 2 polar coordinates follow:
- * Sinking value 1 (e.g. 10 = -1.0m/s)
- * Speed value 1 (km/h)
- * Sinking value 2
- * Speed value 2
- * 12 GPS coordinate values, binary coded as 4 byte long variable, follow
- negative value mean W (S), positive value mean E (N). 0x00000000 if no
- marking set was set, for 0xFFFFFFFF if marking, but no valid position.
- * 4 byte Longitude 1 (MSB first)
- * 4 byte Latitude 1 (MSB first)
- ...
- * 4 byte Longitude 12 (MSB first)
- * 4 byte Latitude 12 (MSB first)
-* now all heights and velocity values in the order: 2 byte for the height, 1
- byte for speed. Markings are coded in the height with an offset of 20.000 m.
-
-
-Leimkuhler 18.02.99
-
-<end>
-
-I'm not sure about the "future extensions" part. My IQ-Competition/GPS doesn't
-spit out those values and I believe that it has the most recent firmware.
-
-Also, curiously the final height/speed pair consistently omits the speed part.
-
-
-Chris Jones
-Aug 2004
+++ /dev/null
-// An EBNF+ format.
-
-// This is a comment
-// "xxx" is the literal three characters x, x and x
-// 0xA8 means a byte of hexadecimal value A8
-// <NULL> ::= 0x00
-// FunctionName(<entity>) means the result of FunctionName when executed on parameter <entity>
-// FunctionName ::= defines the result format in a text description
-// [<entity>] means <entity> is optional
-// <entity 1> | <entity 2> means either <entity 1> or <entity 2>
-// {<entity> <another entity>} is grouping of two or more entities together; mainly for use with the | or operator
-// Entity names might be long winded but are intended to convey some meaning without explicit/additional comments
-
-// Version history
-// V2.5 - 2004/01/12 20:49 GMT mrcb.mps.fmt@osps.net
-// Updates to record signatures for MapSource V5.3 & 5.4
-// Update to incorporate the sketchiest of subclass details
-// V2.4 - 2003/10/18 18:42 BST (GMT+1) mrcb.mps.fmt@osps.net
-// Updates to route formats to include interlink steps (my name for them)
-// V2.3 - 2003/10/03 17:49 BST (GMT+1) mrcb.mps.fmt@osps.net
-// I must type really badly as there were more typoes to sort out.
-// V2.2 - 2003/09/27 23:33 BST (GMT+1) mrcb.mps.fmt@osps.net
-// Corrected typoes
-// Corrected NULL terminated string length counts for records with strings
-// V2.1 - 2003/09/12 18:23 BST (GMT+1) mrcb.mps.fmt@osps.net
-// Changed some of the expressions covering the sections so that the LengthOf(x) was a less ambiguous x
-// Corrected some typoes
-// Added definitions of MapSource V5.0 (this creates data files of format 1.05, apparently)
-//
-// V2.0 - 2003/07/15 21:34 BST (GMT+1) mrcb.mps.fmt@osps.net
-// Complete definitions as far as possible (in my ability, anyway) for V3.02 formats.
-// Some typoes cleaned up.
-// Replaced "unknown" by "UNKNOWN" in entity names where the meaning is not known to this author
-// (as opposed to, for example, where the meaning is known but the value happens to be "unknown",
-// as in the colour unknown).
-// Added definitions for V5.03beta of MapSource - no seeming significant changes from v4 - woopee.
-//
-// V1.0 - 2003/06/30 21:00 BST mrcb.mps.fmt@osps.net
-// First "release". Coverage for version 4.xx (to 4.13) is good although some unknowns still
-// Coverage for V3.x is less good since it seems a little needless to document a format no longer
-// in use, so why start to? Good question. Perhaps I'll finish it off when my MapSource 3 machine
-// is fixed.
-
-
-// Start of MapSource definition ==================================================
-<MPS file> ::= <Header> [<Waypoint section>] [<Route section>] [<Tracklog section>] [<Map section>] <Map Set Name>
-
-<Header> ::= <File Signature> <Format signature> <Program signature>
-
-<File Signature> ::= "MsRc" <First version related char> <NULL>
-
-<First version related char> ::= <MapSource from V3.02, V4.13, V5.03beta, V5.0 char, V5.3 char, V5.4 char>
-
-<MapSource from V3.02, V4.13, v5.03beta, V5.0 char, V5.3 char, V5.4 char> ::= "d"
-
-<Format signature> ::= LengthOf(<Format details>) <Format details>
-
-<Format details> ::= "D" <Second version related char> <NULL>
-
-<Second version related char> ::= <MapSource V3.02 format byte> |
- <MapSource V4.06 format byte> |
- <MapSource V4.13 format byte> |
- <MapSource V5.03beta format byte> |
- <MapSource V5.0 format byte> |
- <MapSource V5.3 format byte> |
- <MapSource V5.4 format byte>
-
-<MapSource V3.02 format byte> ::= "d"
-<MapSource V4.06 format byte> ::= "g"
-<MapSource V4.13 format byte> ::= "h"
-<MapSource V5.03beta format byte> ::= "i"
-<MapSource V5.0 format byte> ::= "i"
-<MapSource V5.3 format byte> ::= "i"
-<MapSource V5.4 format byte> ::= "i"
-
-<Program signature> ::= LengthOf(<Program signature details>) <Program signature details>
-
-<Program signature details> ::= "A" <UNKNOWN two bytes> <QA string> <NULL> <Program date time> <NULL>
-
-<UNKNOWN two bytes> ::= <MapSource V3.02 two bytes> |
- <MapSource V4.06 two bytes> |
- <MapSource V4.13 two bytes> |
- <MapSource V5.03beta two bytes> |
- <MapSource V5.0 two bytes> |
- <MapSource V5.3 two bytes> |
- <MapSource V5.4 two bytes>
-
-// Perhaps this is software build number
-<MapSource V3.02 two bytes> ::= 0x2E 0x01
-<MapSource V4.06 two bytes> ::= 0x96 0x01
-<MapSource V4.13 two bytes> ::= 0x9D 0x01
-<MapSource V5.03beta two bytes> ::= 0xF4 0x01
-<MapSource V5.0 two bytes> ::= 0xF4 0x01
-<MapSource V5.3 two bytes> ::= 0xF7 0x01
-<MapSource V5.4 two bytes> ::= 0xF8 0x01
-
-// SQA might be Software Quality Assurance; buell appears in the beta, so is presumably the programmer's id
-<QA String> ::= "SQA" | "buell"
-
-<Program date time> ::= <MapSource V3.02 date time> |
- <MapSource V4.06 date time> |
- <MapSource V4.13 date time> |
- <MapSource V5.03beta date time> |
- <MapSource V5.0 date time> |
- <MapSource V5.3 date time> |
- <MapSource V5.4 date time>
-
-<MapSource V3.02 date time> ::= "Oct 20 1999" <NULL> "12:50:03"
-<MapSource V4.06 date time> ::= "Oct 22 2001" <NULL> "15:45:05"
-<MapSource V4.13 date time> ::= "Mar 7 2003" <NULL> "15:12:28"
-<MapSource V5.03beta date time> ::= "Jun 27 2003" <NULL> "10:12:10"
-<MapSource V5.0 date time> ::= "Jul 3 2003" <NULL> "08:35:39"
-<MapSource V5.3 date time> ::= "Sep 24 2003" <NULL> "11:44:25"
-<MapSource V5.4 date time> ::= "Nov 6 2003" <NULL> "16:01:32"
-
-<Map Set Name> ::= LengthOf(<Map set details>) <Map set details>
-
-<Map set details> ::= "V" ASCII-Map-Set-Name-can-be-blank <NULL> <Map set auto name flag>
-
-<Map set auto name flag> ::= <Map set don't auto name> | <Map set do auto name>
-<Map set don't auto name> ::= 0x00
-<Map set do auto name> ::= 0x01
-
-// ............................
-<Waypoint section> ::= <Waypoint list>
-
-<Waypoint list> ::= LengthOf(<Waypoint record>) <Waypoint record> [<waypoint list>]
-
-<Waypoint record> ::= <Waypoint V3 record> | <Waypoint V4 record> | <Waypoint V5 record>
-
-<Waypoint V3 record> ::= "W" <Waypoint name> <Waypoint UNKNOWN 1 V3> <Lat semicircle>
- <Lon semicircle> <Altitude field> <Waypoint description> <Proximity field> <Waypoint attributes V3>
- <Waypoint city> <Waypoint state> <Waypoint facility> <Waypoint UNKNOWN 2 V3> <Depth field>
- <Waypoint UNKNOWN 3 V3>
-
-<Waypoint name> ::= x-character-short-name <NULL>
-
-<Waypoint class> ::= Long(class)
-// Class classification - cf D154_Wpt_Type
-// 0 = user waypoint, editable
-// 1 = Airport, not user editable
-// 2 = Aviation Intersection, not user editable
-// 3 = NDB (whatever that is), not user editable
-// 4 = VOR, not user editable
-// 5 = Runway Threshold, not user editable
-// 6 = Airport Intersection, not user editable
-// 7 = Airport NDM, not user editable
-// 8 = Map Point, not user editable
-// 9 = Map Area, not user editable
-// A = Map Intersection, not user editable
-// B = Map Address, not user editable
-// C = Map Line, not user editable
-
-// Valid for waypoint class types 1 to 8
-<Waypoint country> ::= country-string <NULL>
-
-// Perhaps some waypoint subclass definition?
-// The following almost certainly contains <Waypoint class> <Waypoint country> - this is the case for the V4 formatted file
-// Vwip - added 0x00 at the end of this
-<Waypoint UNKNOWN 1 V3> ::= 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00
-
-<Waypoint description> ::= ASCII-Character-string <NULL>
-
-<Waypoint attributes V3> ::= <Waypoint display flag> <Waypoint colour field> <Waypoint symbol field>
-
-<Waypoint display flag> ::= <Waypoint display symbol only> | <Waypoint display symbol and name only> | <Waypoint display symbol and description>
-
-<Waypoint display symbol only> ::= Long(0x00)
-<Waypoint display symbol and name only> ::= Long(0x01)
-<Waypoint display symbol and description> ::= Long(0x02)
-
-<Waypoint colour field> ::= <Colour field>
-
-<Waypoint symbol field> ::= Long(<Icon value>)
-
-// Next three only valid for waypoint classes 1 to 8
-<Waypoint city> ::= city-string <NULL>
-<Waypoint state> ::= USA-state-for-waypoint-city-string <NULL>
-<Waypoint facility> ::= facility-string <NULL>
-
-<Waypoint UNKNOWN 2 V3> ::= <UNKNOWN byte>
-
-<Waypoint UNKNOWN 3 V3> ::= 2-bytes-unknown
-
-<Waypoint V4 record> ::= "W" <Waypoint name> <Waypoint class> <Waypoint country> <Waypoint subclass data V4>
- <Waypoint UNKNOWN 1 V4> <Lat semicircle> <Lon semicircle> <Altitude field>
- <Waypoint description> <Proximity field> <Waypoint attributes V3> <Waypoint city>
- <Waypoint state> <Waypoint facility> <Waypoint UNKNOWN 2 V3> <Depth field>
- <Waypoint UNKNOWN 3 V4>
-
-// Values depend on <Waypoint class>. If class is zero, then
-// subclass = 0x00 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
-// (last two octects may be zero depending on whether the waypoint was originally created
-// in MapSource V3)
-// If class is non-zero, then values are unknown
-<Waypoint subclass data V4> ::= 18-bytes-unknown
-
-<Waypoint UNKNOWN 1 V4> ::= 0xFF 0xFF 0xFF 0xFF
-
-// Perhaps the 2 bytes of <Waypoint UNKNOWN 3 V3> plus Field-defined-flag plus a Long value
-<Waypoint UNKNOWN 3 V4> ::= 7-bytes-unknown
-
-<Waypoint V5 record> ::= <Waypoint V4 record>
-
-// ............................
-<Route section> ::= <Route list>
-
-<Route list> ::= LengthOf(<Route record>) <Route record> [<Route list>]
-
-<Route record> ::= <Route V3 record> | <Route V4 record> | <Route V5 record>
-
-// Note: for each waypoint that appears in a route, there must also be a "normal" waypoint defined
-<Route V3 record> ::= "R" ASCII-Route-Name-string <NULL> <Route autoname flag> <Route lat lon max> <Route max altitude>
- <Route lat lon min> <Route min altitude> Long(Number-of-Waypoints-in-Route) <Route waypoint list V3>
-
-// Note: for each waypoint that appears in a route, there must also be a "normal" waypoint defined
-<Route V4 record> ::= "R" ASCII-Route-Name-string <NULL> <Route autoname flag> <Route lat lon max> <Route max altitude>
- <Route lat lon min> <Route min altitude> Long(Number-of-Waypoints-in-Route) <Route waypoint list v4>
-
-<Route V5 record> ::= <Route V4 record>
-
-<Route autoname flag> ::= <Route not autoname> | <Route do autoname>
-<Route not autoname> ::= Word(0x00)
-<Route do autoname> ::= Word(0x01)
-
-// Max values taken from all waypoints in the route to form a virtual "upper right" point
-<Route lat lon max> ::= <Lat semicircle> <Lon semicircle>
-
-// Part of the route bounding a 3D co-ordinate
-<Route max altitude> ::= <Altitude field>
-
-// Min values taken from all waypoints in the route to form a virtual "lower left" point
-<Route lat lon min> ::= <Lat semicircle> <Lon semicircle>
-
-// Part of the route bounding a 3D co-ordinate
-<Route min altitude> ::= <Altitude field>
-
-<Route waypoint list v3> ::= <Route waypoint v3> <Route link list v3> Long(0x00) 0x01
-
-<Route link list v3> ::= <Route link details> <Route waypoint v3> [<Route link list v3>]
-
-<Route waypoint v3> ::= <Route waypoint name> <Waypoint UNKNOWN 1 V3> <Route waypoint UNKNOWN 1 V3>
-
-<Route waypoint name> ::= ASCII-name <NULL>
-
-// The first zero seems to be a string <NULL> terminator
-<Route waypoint UNKNOWN 1 V3> ::= 0x00 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
- 0x00 0x00
-
-<Route waypoint list v4> ::= <Route waypoint v4> <Route link list v4> Long(0x00) 0x01
-
-<Route link list v4> ::= <Route link details> <Route waypoint v4> [<Route link list v4>]
-
-<Route waypoint v4> ::= <Route waypoint name> <Waypoint class> <Waypoint country> <Waypoint subclass data V4>
- <Route subclass data V4> <Waypoint UNKNOWN 1 V4> <Route waypoint UNKNOWN 1 V4>
-
-<Route subclass data V4> ::= empty-if-class-is-zero | 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
-
-// The first zero seems to be a string <NULL> terminator
-<Route waypoint UNKNOWN 1 V4> ::= 0x00 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
- 0x00 0x00 0x00
-
-<Route link details> ::= Long(0x02 + Num-of-Interlink-steps) <Route link end 1 co-ord> [<Interlink steps>] <Route link end 2 co-ord> <NULL>
- <Route link max co-ord> <Route link min co-ord>
-
-// These are optional additional steps between the two ends of the link
-// Why MapSource creates these is unknown
-<Interlink steps> ::= <co-ord> <Interlink steps>
-
-<Route link end 1 co-ord> ::= <co-ord>
-
-<Route link end 2 co-ord> ::= <co-ord>
-
-// Virtual "Upper right top" co-ordinate
-<Route link max 1 co-ord> ::= <co-ord>
-
-// Virtual "lower left bottom" co-ordinate
-<Route link min 1 co-ord> ::= <co-ord>
-
-<co-ord> ::= <Lat semicircle> <Lon semicircle> <Altitude field>
-
-// ............................
-<Tracklog section> ::= <Tracklog list>
-
-<Tracklog list> ::= LengthOf(<Tracklog record>) <Tracklog record> [<Tracklog list>]
-
-<Tracklog record> ::= <Tracklog V3 record> | <Tracklog V4 record> | <Tracklog V5 record>
-
-<Tracklog V3 record> ::= "T" ASCII-Tracklog-Name-string <NULL> <Tracklog display flag> <Tracklog colour field>
- Long(Number-of-datapoints-in-tracklog) <Tracklog datapoint list>
-
-<Tracklog V4 record> ::= <Tracklog V3 record>
-
-<Tracklog V5 record> ::= <Tracklog V3 record>
-
-<Tracklog display flag> ::= <Tracklog do display on GPS> | <Tracklog don't display on GPS>
-<Tracklog do display on GPS> ::= 0x01
-<Tracklog don't display on GPS> ::= 0x00
-
-<Tracklog colour field> ::= <Colour field>
-
-<Tracklog datapoint list> ::= [<Tracklog datapoint>] [<Tracklog datapoint list>]
-
-<Tracklog datapoint> ::== <Lat semicircle> <Lon semicircle> <Altitude field> <Date Time field> <Depth field>
-
-// ............................
-<Map section> ::= <Map segment list>
-
-<Map segment list> ::= LengthOf(<Map segment>) <Map segment> [<Map segment list>]
-
-<Map segment> ::= <Map V3 segment> | <Map V4 segment> | <Map V5 segment>
-
-// Map segments are portions of the overall map
-// What is stored in the MPS file is not the map detail but references to the detail
-// Area name refers to an area larger than the segment, perhaps by way of locating the segment within the World
-<Map V3 segment> ::= "L" Long(Map-CD-ID) Long(Segment-ID) ASCII-CD-Name <NULL> ASCII-Segment-Name <NULL> ASCII-Area-Name <NULL> Long(0x00)
-
-<Map V4 segment> ::= <Map V3 segment>
-
-<Map V5 segment> ::= <Map V3 segment>
-
-// Common definitions --------------------------------------------------------------
-
-<Colour field> ::= <colour unknown> | <colour black> | <colour dark red> | colour dark green> | <colour dark yellow> | <colour dark blue> |
- <colour dark magenta> | <colour dark cyan> | <colour light grey> | <colour dark grey> | <colour red> |
- <colour green> | <colour blue> | <colour magenta> | <colour cyan> | <colour white>
-<colour unknown> ::= Long(0x00)
-<colour black> ::= Long(0x01)
-<colour dark red> ::= Long(0x02)
-<colour dark green> ::= Long(0x03)
-<colour dark yellow> ::= Long(0x04)
-<colour dark blue> ::= Long(0x05)
-<colour dark magenta> ::= Long(0x06)
-<colour dark cyan> ::= Long(0x07)
-<colour light grey> ::= Long(0x08)
-<colour dark grey> ::= Long(0x09)
-<colour red> ::= Long(0x0A)
-<colour green> ::= Long(0x0B)
-<colour yellow> ::= Long(0x0C)
-<colour blue> ::= Long(0x0D)
-<colour magenta> ::= Long(0x0E)
-<colour cyan> ::= Long(0x0F)
-<colour white> ::= Long(0x10)
-
-<Altitude field> ::= <Field contains a defined value flag> <Altitude value>
-
-<Altitude value> ::= Double(Value in metres)
-
-<Date Time field> ::= <Field contains a defined value flag> <Date time value>
-
-<Date time value> ::= Long(date-time-seconds-since-00:00:00-01/01/1970)
-
-<Depth field> ::= <Field contains a defined value flag> <Depth value>
-
-// Depth is not negative altitude - GPS not being overly useful on a submarine - but the "thickness" of a GPS point (e.g. airspace)
-// Assumed to be calculated below the GPS datapoint height. If so, then the object being referenced extends from
-// (Altitude - depth) to (Altitude) upwards
-<Depth value> ::= Double(value in metres)
-
-<Proximity field> ::= <Field contains a defined value flag> <Proximity value>
-
-<Proximity value> ::= Double(Value in metres)
-
-<Field contains a defined value flag> ::= <Field defined flag - yes> | <Field defined flag - no>
-<Field defined flag - yes> ::= 0x01
-<Field defined flag - no> ::= 0x00
-
-// Check out the values in the Garmin Protocol description document and elsewhere on the web
-<Icon value> ::= Too-many-to-list-here-!
-
-<Lat semicircle> ::= Long(latitude * 2^31 / 180)
-<Lon semicircle> ::= Long(longitude * 2^31 / 180)
-
-// Start of function definitions ---------------------------------------------------
-Word ::= 2 bytes, little endian
-Long ::= 4 bytes, little endian
-Double ::= 8 byte, little endian, IEEE format
-LengthOf ::= 4 bytes, little endian - zero value means "1 element long"
-// End of function definitions
-
-// End of MapSource defintion
-
+++ /dev/null
-This is an annotated hex dump of a Street Atlas 2003 .anr file.
-I've also added notes to indicate where SA 2005 puts extra data
-
- 2D 32 magic
- 07 00 version
- 02 00 00 00 unknown
- 01 00 00 00 unknown (version 7+ only)
- 01 00 00 00 unknown (version 7+ only)
-
--- end of header --
-
- 0A 00 record type?
- 44 00 00 00 record size - strlen
- 20 04 0F 11 ???
- 01 00 00 00 ???
- 01 00 00 00 ???
- 01 00 00 00 ???
- 00 00 00 00 ???
- 00 00 ???
- 14 40 00 00 ???
- 15 00 strlen of route name
- 68 6F 6D 65 20 74 6F 20 77 6F 72 6B 20 62 61 63 6B 20 77 61 79
- route name (home to work back way)
- 00 00 ???
- 29 5C 8F C2 F5 28 05 40 = 2.645000 (distance in km)
- 6B 01 00 00 = 363 = 6:03 (total time)
- 07 A8 35 6F 7B 03 69 40 = 200.108818 (overall heading)
- 79 29 0F 3F ??? = 0.559227
- 98 38 0F 3F ??? = 0.559457
- 20 00 00 00 ???
- 01 00 ???
-
--- end of routefile header --
-
- 03 00 00 00 count of control points
-
- 01 00 type?
- 64 00 00 00 size
- E9 F0 6B 55 lon 85.1567105054855 (actual point)
- 84 43 6C 6B lat 41.1542053222656
- 11 04 82 08
- 30 04 0F 11
- 13 00 00 00 (19)
- 16 00 strlen of address
- 38 30 32 35 20 53 69 6C 76 65 72 20 53 70 72 69 6E 67 73 20 50 6C address (8025 Silver Springs Pl)
- 16 00 strlen of comment
- 38 30 32 35 20 53 69 6C 76 65 72 20 53 70 72 69 6E 67 73 20 50 6C comment (8025 Silver Springs Pl)
- 02 00 START?
- 9B FF FF FF (-101)
- 9B FF FF FF (-101)
- 01 00
- 7B F4 6B 55 lon 85.1566015481949 (point on closest road)
- B3 43 6C 6B lat 41.1541839838028
- 14 00 00 00 (20)
- 14 00 00 00 (20)
- 00 00 00 00
-------------
- 00 00 00 00
- 00 00 00 00
-------------
- 01 00 type?
- 4E 00 00 00 size
- 8A B7 6B 55 lon 85.1584613323212 (actual point)
- 9D 65 6C 6B lat 41.1531490087509
- 13 04 82 08
- 30 04 0F 11
- 1D 00 00 00 (29)
- 0B 00 strlen of address
- 4D 61 79 66 69 65 6C 64 20 50 6C address (Mayfield Pl)
- 0B 00 strlen of comment
- 4D 61 79 66 69 65 6C 64 20 50 6C comment (Mayfield Pl)
- 01 00 VIA?
- 9B FF FF FF
- 9B FF FF FF
- 01 00
- 93 B7 6B 55 lon 85.1584602594376 (point on closest road)
- 46 65 6C 6B lat 41.1531593799591
- 14 00 00 00
- 14 00 00 00
- 00 00 00 00
-------------
- 00 00 00 00
- 00 00 00 00
-------------
-SA 2005 contains something like this here:
- 00 00 00 00
- 00 00
- F0 BF 00 00
- 00 00 00 00
- F0 BF 00 00
-------------
- 01 00 type?
- 72 00 00 00 size
- F3 72 6B 55 lon 85.1605545282364 (actual point)
- E2 4D 6D 6B lat 41.1460607051849 /
- 15 04 82 08
- 30 04 0F 11
- 18 00 00 00 ??? (24)
- 1D 00 strlen of address
- 37 32 35 20 41 69 72 70 6F 72 74 20 4E 6F 72 74 68 20 4F 66 66 69 63 65 20 50 61 72 6B
- address (725 Airport North Office Park)
- 1D 00 strlen of comment
- 37 32 35 20 41 69 72 70 6F 72 74 20 4E 6F 72 74 68 20 4F 66 66 69 63 65 20 50 61 72 6B
- comment (725 Airport North Office Park)
- 03 00 STOP?
- 9B FF FF FF ??? (-101)
- 9B FF FF FF ??? (-101)
- 01 00 Is this a count of latlon points to follow? Should I worry?
- D2 71 6B 55 lon 85.1605889797211 (point on closest road)
- 71 50 6D 6B lat 41.1459826231003 /
- 14 00 00 00 ??? (20)
- 14 00 00 00 ??? (20)
- 00 00 00 00 ??? (0)
-------------
- 00 00 00 00
- 00 00 00 00
-------------
-SA 2005 contains something like this here:
- 00 00 00 00
- 00 00
- F0 BF 00 00
- 00 00 00 00
- F0 BF 00 00
------------- beginning of route coordinates
- 01 00 00 00 route leg count
------------- beginning of leg 1
- 0A 00 type?
- 32 00 00 00 size
- 00 00 00 00 ???
- 1F 00 00 00 ???
- 00 00 ???
- 06 00 00 00 ???
- 04 00 00 00 ???
- 29 5C 8F C2 F5 28 05 40 2.645000 (distance in km)
- 6B 01 00 00 363 = 6:03 (total time)
- 07 A8 35 6F 7B 03 69 40 200.108818 (overall heading)
- 00 00 00 00 ??? always? 0
- 00 00 00 00 ??? always? 0
- 00 00 00 00 ??? always? 0
-------------
- 0B 00 00 00 leg segment count
------------- 1 SS Pl
- 0A 00 type?
- 61 00 00 00 size
- 11 00 strlen of street
- 53 69 6C 76 65 72 20 53 70 72 69 6E 67 73 20 50 6C street (Silver Springs Pl)
- 09 00 00 00 road type (local road)
- 01 00 00 00 ??? seems to be 0 or 1
- DB F9 7E 6A BC 74 93 3F = .019 length (km)
- 02 00 00 00 end time
- 06 00 00 00 ???
- 56 F3 93 DD A6 FD 66 40 = 183.927 heading (degrees)
- 00 00 00 00 ??? always? 0
- 00 00 00 00 ??? always? 0
- 00 00 00 00 ??? always? 0
- 00 00 00 00 ??? usually -1, but on first record it seems to be 0
- 00 00 00 00 transit time
- 00 00 00 00 00 00 00 00 = 0.00 distance at start (km)
- 02 00 coord pair count
- B3 43 6C 6B \
- 7B F4 6B 55 \ coord
- 50 49 6C 6B / pairs
- F8 F3 6B 55 /
-------------
-SA 2005 contains something like this here (and at the end of every leg; I haven't pasted them anywhere else):
- 07 00 00 00
- 00 00 00 00
------------- 2 SS Ct
- 0A 00
- 61 00 00 00
- 11 00
- 53 69 6C 76 65 72 20 53 70 72 69 6E 67 73 20 43 74
- 09 00 00 00 road type (local road)
- 01 00 00 00
- FC A9 F1 D2 4D 62 B0 3F = .064 length (km)
- 09 00 00 00 end time
- 00 00 00 00
- 29 C8 2B 53 7B 9C 70 40 = 265.780 heading (degrees)
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- FF FF FF FF
- 02 00 00 00 transit time
- DB F9 7E 6A BC 74 93 3F = 0.019 distance at start (km)
- 02 00
- 50 49 6C 6B
- F8 F3 6B 55
- B8 4A 6C 6B
- A8 DA 6B 55
------------- 3 SS Run
- 0A 00
- 62 00 00 00
- 12 00
- 53 69 6C 76 65 72 20 53 70 72 69 6E 67 73 20 52 75 6E
- 09 00 00 00 road type (local road)
- 01 00 00 00
- 11 58 39 B4 C8 76 BE 3F = .119 length (km)
- 11 00 00 00 end time
- 02 00 00 00
- 7B D1 CA 13 65 7C C5 3E = 0.000003 heading (degrees)
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- FF FF FF FF
- 0B 00 00 00 transit time
- 73 68 91 ED 7C 3F B5 3F = .083 distance at start (km)
- 02 00
- B8 4A 6C 6B
- A8 DA 6B 55
- 90 27 6C 6B
- A8 DA 6B 55
------------- 4 Oak Bay Run
- 0A 00
- 63 00 00 00
- 0B 00
- 4F 61 6B 20 42 61 79 20 52 75 6E
- 09 00 00 00 road type (local road)
- 01 00 00 00
- 06 81 95 43 8B 6C D7 3F = 0.366000 length (km)
- 36 00 00 00 end time
- 00 00 00 00
- EC 69 A6 26 E4 F7 70 40 = 271.493201 heading (degrees)
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- FF FF FF FF
- 1C 00 00 00 transit time
- 42 60 E5 D0 22 DB C9 3F = 0.202000 distance at start (km)
- 03 00
- 90 27 6C 6B
- A8 DA 6B 55
- 90 27 6C 6B
- C8 C9 6B 55
- C0 24 6C 6B
- 38 4B 6B 55
------------- 5 Northland
- 0A 00
- 66 00 00 00
- 0E 00
- 4E 6F 72 74 68 6C 61 6E 64 20 42 6C 76 64
- 09 00 00 00 road type (local road)
- 01 00 00 00
- 83 C0 CA A1 45 B6 D3 3F
- 2D 00 00 00
- 00 00 00 00
- 64 6E 6C F9 04 E0 70 40
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- FF FF FF FF
- 52 00 00 00
- 94 18 04 56 0E 2D E2 3F
- 03 00
- C0 24 6C 6B
- 38 4B 6B 55
- C0 24 6C 6B
- 98 45 6B 55
- C0 24 6C 6B
- 48 D2 6A 55
------------- 6 SR 3
- 0A 00
- 5E 00 00 00
- 0E 00
- 53 52 20 33 20 28 4C 69 6D 61 20 52 64 29
- 03 00 00 00 road type (primary state/prov rte)
- 00 00 00 00
- 23 DB F9 7E 6A BC C4 3F
- 08 00 00 00
- 06 00 00 00
- C4 97 99 D0 11 7F 66 40
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- FF FF FF FF
- 7F 00 00 00
- D6 78 E9 26 31 08 EC 3F
- 02 00
- C0 24 6C 6B
- 48 D2 6A 55
- 90 54 6C 6B
- 48 D2 6A 55
------------- 7 N Mayfield Pl
- 0A 00
- 65 00 00 00
- 0D 00
- 4E 20 4D 61 79 66 69 65 6C 64 20 50 6C
- 09 00 00 00
- 01 00 00 00
- 17 D9 CE F7 53 E3 C5 3F
- 19 00 00 00
- 04 00 00 00
- 59 EC C0 84 35 5B 59 40
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- FF FF FF FF
- 87 00 00 00
- CF F7 53 E3 A5 9B F0 3F
- 03 00
- 90 54 6C 6B
- 48 D2 6A 55
- 90 54 6C 6B
- A0 F2 6A 55
- 68 5E 6C 6B
- F8 12 6B 55
------------- 8 Mayfield Pl
- 0A 00
- 73 00 00 00
- 0B 00
- 4D 61 79 66 69 65 6C 64 20 50 6C
- 09 00 00 00
- 01 00 00 00
- 87 16 D9 CE F7 53 DB 3F
- 3F 00 00 00
- 04 00 00 00
- 13 45 4F 28 4E 4C 57 40
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- FF FF FF FF
- A0 00 00 00
- F2 D2 4D 62 10 58 F3 3F
- 05 00
- 68 5E 6C 6B
- F8 12 6B 55
- 68 5E 6C 6B
- 30 44 6B 55
- 46 65 6C 6B
- 93 B7 6B 55
- 46 65 6C 6B
- 93 B7 6B 55
- 70 65 6C 6B
- 50 BA 6B 55
------------- 9 Woodbine Ave
- 0A 00
- 64 00 00 00
- 0C 00
- 57 6F 6F 64 62 69 6E 65 20 41 76 65
- 09 00 00 00
- 01 00 00 00
- 8D 97 6E 12 83 C0 E6 3F
- 6A 00 00 00
- 06 00 00 00
- 8A C6 FD 0A AE 51 66 40
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- FF FF FF FF
- DF 00 00 00
- 94 18 04 56 0E 2D FA 3F
- 03 00
- 70 65 6C 6B
- 50 BA 6B 55
- 00 8A 6C 6B
- 50 BA 6B 55
- F8 36 6D 6B
- 58 C1 6B 55
------------- a W Cook Rd
- 0A 00
- 59 00 00 00
- 09 00
- 57 20 43 6F 6F 6B 20 52 64
- 09 00 00 00
- 00 00 00 00
- CF F7 53 E3 A5 9B C4 3F
- 0E 00 00 00
- 00 00 00 00
- 5B 80 08 FA F6 C4 70 40
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- FF FF FF FF
- 49 01 00 00
- 2D B2 9D EF A7 C6 02 40
- 02 00
- F8 36 6D 6B
- 58 C1 6B 55
- 60 38 6D 6B
- 10 82 6B 55
------------- b Airport North Office Park
- 0A 00
- 79 00 00 00
- 19 00
- 41 69 72 70 6F 72 74 20 4E 6F 72 74 68 20 4F 66 66 69 63 65 20 50 61 72 6B
- 09 00 00 00
- 01 00 00 00
- F0 A7 C6 4B 37 89 C1 3F
- 14 00 00 00
- 07 00 00 00
- 7C E9 DD FE 17 DE 69 40
- 00 00 00 00
- 00 00 00 00
- 00 00 00 00
- FF FF FF FF
- 57 01 00 00
- AA F1 D2 4D 62 10 04 40
- 04 00
- 60 38 6D 6B
- 10 82 6B 55
- 70 46 6D 6B
- 10 82 6B 55
- 80 54 6D 6B
- 10 82 6B 55
- 71 50 6D 6B
- D2 71 6B 55
------------- end of leg, end of route
- 4C 00 00 00 record size
- 42 60 E5 D0 22 9B 23 40 = 9.803000
- 00 00 00 00 00 00 E0 3F = 0.500000
- 9F AB AD D8 5F B6 46 40 = 45.424800
- 00 00 00 00 00 00 D0 3F = 0.250000
- 04 00 00 00
- 00 00 00 00
- 00 00 00 00
- 80 70 00 00
- 08 07 00 00
- 4C 37 89 41 60 25 89 40 = 804.672000
- 3D 2C D4 9A E6 1D 54 40 = 80.467200
- 02 00 00 00
+++ /dev/null
-#!/usr/bin/perl
-
-=pod
-
- This script reads a DeLorme Street Atlas 2003-2005 .anr (route) file
- and prints various pertinent data from it. Anything with a variable
- name starting with "unk" or "magic" or "zero" is probably something
- we don't yet understand. Suggestions as to what some of these fields
- mean are welcome. The author disclaims any liability arising from
- the use of any information contained within this script.
-
- Copyright (C) 2004 Ronald L. Parker (babelanrperl@parkrrrr.com)
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-=cut
-
-# Convert a longword to a latitude or longitude
-sub decode {
- my $foo = shift;
-
- my $deg = (0x80000000-$foo)/(0x800000);
- sprintf( "%d %06.3f", $deg, 60*($deg-int($deg)));
-}
-
-
-# read a data structure from the input file.
-sub shiftunpack {
-
- my $pattern = shift;
- my @result = unpack( $pattern, $file );
- my $str = pack( $pattern, @result );
- $file = substr( $file, length( $str ));
- @result;
-}
-
-# read file
-undef $/;
-$file = <>;
-
-# read file header
-($magic, $version, $unk1, $unk2, $unk3) = shiftunpack( 'sslll' );
-
-print <<END;
-MAGIC $magic
-VERSION $version
-
-END
-
-# read route info
-($rectype,
- $recsize,
- $magic1,
- $unk1,
- $unk2,
- $unk3,
- $unk4,
- $unk5,
- $magic2,
- $routename,
- $unk6,
- $distance,
- $time,
- $heading,
- $unkf1,
- $unkf2,
- $unk7,
- $unk8) = shiftunpack( 'sllllllsls/A*sdldffls' );
-
-#printf( "%.8x %d %d %d %d %d %.4x %d %9.6f %9.6f %3d %d ",
-# $magic1,
-# $unk1, $unk2, $unk3, $unk4, $unk5,
-# $magic2,
-# $unk6,
-# $unkf1, $unkf2,
-# $unk7, $unk8 );
-print "$routename ($distance km, $time seconds, heading $heading)\n";
-
-
-
-($sigpoints)=shiftunpack('l');
-print "$sigpoints significant points\n";
-for (1..$sigpoints) {
- ($type,
- $size,
- $actual_lon,
- $actual_lat,
- $magic1,
- $magic2,
- $unk1,
- $addr,
- $comment,
- $sigtype,
- $unk2,
- $unk3,
- $unk4,
- $closest_lon,
- $closest_lat,
- $unk5,
- $unk6,
- $unk7,
- $zero1,
- $zero2) = shiftunpack( 'slllllls/A*s/A*sllslllllll' );
- @SA2005Extras = shiftunpack('lslll') if ($version > 10);
-
- print "$addr ($comment)\n ".
- decode($actual_lat).' '.decode($actual_lon)."\n ".
- decode($closest_lat).' '.decode($closest_lon)."\n";
-
-}
-
-($routelegcount) = shiftunpack('l');
-
-for ( 1..$routelegcount ) {
-
- # read leg header
- ($type, $size, $unk1, $unk2, $unk3, $unk4, $unk5,
- $distance, $time, $heading, $unk6, $unk7, $unk8) =
- shiftunpack( 'slllslldldlll' );
- print "leg length $distance ($time seconds, $heading°)\n";
-
- # read segment count
- ($segcount)=shiftunpack('l');
- # read segments
- for (1..$segcount) {
- ($type, $size, $street, $roadtype, $unk1,
- $distance, $transittime, $unk2,
- $heading, $unk3, $unk4, $unk5, $unk6,
- $starttime, $startdist, $coords) =
- shiftunpack( 'sls/A*lldlldlllllds' );
- print "$street ($roadtype) distance $distance heading $heading\n starting $startdist [$starttime $transittime]\n";
- @coordpairs = shiftunpack( "(ll)[$coords]" );
-
- for $c (0..$coords-1) {
- print ' '.decode($coordpairs[$c*2]).' '.decode($coordpairs[$c*2+1])."\n";
- }
- @SA2005Extras = shiftunpack('ll') if ($version > 10) ;
- }
-}
-
-# read footer
-($size,$f1,$f2,$f3,$f4,$unk1,$unk2, $unk3,$unk4,$unk5,$f5,$f6,$unk6)=
- shiftunpack('lddddlllllddl');
-printf( "%12.6f %12.6f %12.6f %12.6f %12.6f %12.6f\n", $f1, $f2, $f3, $f4, $f5, $f6);
+++ /dev/null
-for i in testo.d/*.test
-do
- t=${i%.test}
- t=${t##testo.d/}
- fmts="$fmts \"./vtesto $t\""
-done
-eval parallel -j 8 -- "$fmts"
+++ /dev/null
-#!/bin/bash
-
-#
-# try to read and write all combinations we can. Don't try to
-# be terribly portable and don't test for correctness. This test
-# is meant for code coverage.
-#
-
-# Exercise read and write of waypoint/track/route in every format.
-
-TMPD=/tmp/babeltest.$$
-GB="./gpsbabel"
-GB="valgrind -q ./gpsbabel"
-
-mkdir $TMPD
-
-rwall() {
- name=$1
- cap=$2
-
- REFFILE=reference/expertgps.gpx
-
- if [ $(echo $cap | grep -s w) ]; then
- $GB -i gpx -f $REFFILE -o $name -F $TMPD/$name
- if [ $(echo $cap | grep -s r) ]; then
- $GB -i $name -f $TMPD/$name -o gpx -F /dev/null
- fi
- fi
-}
-
-#
-# Given a Geocache as input, verify we can write it.
-#
-wgc() {
- name=$1
- cap=$2
-
- REFDIR=reference/gc
- if [ $(echo $cap | grep -s '^.w') ]; then
- $GB -i gpx -f $REFDIR/GC7FA4.gpx -o $name -F $TMPD/$name-gc1
- $GB -i gpx -f $REFDIR/GCGCA8.gpx -o $name -F $TMPD/$name-gc2
- fi
-}
-
-
-$GB -^2 | while read fmt cap name junk
-do
- if [ "$fmt" != "file" ]; then
- continue;
- fi
-
- rwall $name $cap
- wgc $name $cap
-
- echo $name
-
-done
+++ /dev/null
-#!/bin/sh
-
-### cross format waypoint check ###
-
-PNAME=${PNAME:-./gpsbabel}
-REFGPX="reference/expertgps.gpx" # reference file for all tests
-EXCL="ozi vitosmt" # exclude formats from test
-CAPS=""
-TEMPDIR=/tmp/gb-testw
-CATALOG=/tmp/gb-testw.done
-LOGFILE=/tmp/gb-testw.log
-
-# options
-vg=0
-prep=0
-
-function log_entry()
-{
- touch $LOGFILE
- echo "-----------------------------------------------------------------------" >> ${LOGFILE}
- date >> ${LOGFILE}
- echo "$*" >> ${LOGFILE}
-}
-
-function try_run() # command line
-{
- local CMD="$*"
- local RES=0
-
- [ $vg -ne 0 ] && CMD="valgrind -q $CMD"
-
- ${CMD} > $TEMPDIR/.result 2>&1
- RES=$?
- if [ $RES -ne 0 -o -s $TEMPDIR/.result ]; then
- if [ $RES -ne 0 ]; then
- echo " -- Uhps --"
- echo "-----------------------------------------------------------------------"
- test -s $TEMPDIR/.result && cat $TEMPDIR/.result
- echo "-----------------------------------------------------------------------"
- else
- echo ""
- fi
- log_entry "cmd($RES): $CMD"
- test -s $TEMPDIR/.result && cat $TEMPDIR/.result >> ${LOGFILE}
- return 1
- else
- return 0
- fi
-}
-
-function STAGE_1 () # format
-{
- local FMT=$1
- local CMD1 CMD2
-
- echo "$CAPS" |
-
- while read type caps format comment; do
-
- for i in $EXCL; do
- if [ "$format" = "$i" ]; then
- caps="------"
- fi
- done
-
- grep "$FMT & $format" ${CATALOG} > /dev/null && continue
-
- echo -n "testing \"$FMT\" with \"$format\" "
-
- case $caps in
-
- -w*)
- echo -n "*"
- CMD1="${PNAME} -i $FMT -f $TEMPDIR/$FMT -o $format -F $TEMPDIR/$FMT.$format"
- try_run "${CMD1}" || continue
- ;;
-
- rw*)
- echo -n "*"
- CMD1="${PNAME} -i $FMT -f $TEMPDIR/$FMT -o $format -F $TEMPDIR/$FMT.$format"
- try_run "${CMD1}" || continue
- echo -n "*"
- CMD2="${PNAME} -i $format -f $TEMPDIR/$FMT.$format -o $FMT -F $TEMPDIR/$FMT.$format.$FMT"
- try_run "${CMD2}" || continue
- ;;
- esac
- echo "*"
- echo "$FMT & $format" >> $CATALOG
- done
- return 0
-}
-
-function STAGE_0 ()
-{
- echo "$CAPS" |
-
- while read type caps format comment; do
-
- for i in $EXCL; do
- if [ "$format" = "$i" ]; then
- caps="------"
- fi
- done
-
- case $caps in
- rw*)
- CMD="${PNAME} -i gpx -f $REFGPX -x nuketypes,routes,tracks -o $format -F $TEMPDIR/$format"
- try_run "${CMD}" || continue
- STAGE_1 $format || exit 1
- ;;
- esac
- case $caps in
- -w*)
- CMD="${PNAME} -i gpx -f $REFGPX -x nuketypes,routes,tracks -o $format -F $TEMPDIR/$format"
- try_run "${CMD}" || continue
- ;;
- esac
- done
- rm -f $TEMPDIR/.result
-}
-
-rm -rf $TEMPDIR > /dev/null
-mkdir -p $TEMPDIR > /dev/null
-
-while [ $# -gt 0 ]; do
- case $1 in
- -s|--start) # remove catalog. run the full test.
- rm -f $CATALOG
- ;;
- -v|--valgrind)
- vg=1
- ;;
- -p|--prepare) # prepare for valgrind check.
- prep=1
- ;;
- -c|--clean)
- trap "rm -fr $TEMPDIR; exit 1" 0 1 2 3 15
- ;;
- -r|--reference)
- shift
- REFGPX=$1
- ;;
- esac
- shift
-done
-
-if [ $prep -ne 0 ]; then
- test -s Makefile && make clean
- CFLAGS="-O0" ./configure || exit 1 # -O0 is suggested by vg.
- make || exit 1
- echo "All fine. You can do now a 'testw -v'"
- exit 0
-fi
-
-if test ! -s $REFGPX; then
- echo "GPX reference \"$REFGPX\" doesn't exist!"
- exit 1
-fi
-
-touch $CATALOG
-
-log_entry "testw started."
-echo "Catalog: $CATALOG" >> $LOGFILE
-
-CAPS=`${PNAME} -^2 | grep "^file"`
-STAGE_0
+++ /dev/null
-#!/bin/bash
-find reference -type f -perm +0111 -exec svn propdel svn:executable {} \;
-find . -name "*.ico" -perm +0111 -exec svn propdel svn:executable {} \;
-find . -name "*.png" -perm +0111 -exec svn propdel svn:executable {} \;
-find . -name "*.cpp" -perm +0111 -exec svn propdel svn:executable {} \;
-find . -name "*.xml" -perm +0111 -exec svn propdel svn:executable {} \;
-find . -name "*.[ch]" -perm +0111 -exec svn propdel svn:executable {} \;
-find . -name "*.cc" -perm +0111 -exec svn propdel svn:executable {} \;
+++ /dev/null
-function trim_filelist()
-{
- sort |
- uniq | # remove duplicate lines
- sed 's/^[ \t]*//;s/[ \t]*$//' | # remove leading and trailing whitespaces
- sed '/^$/d' # drop empty lines
-}
-
-function check_filelist() # check presence of all files
-{
- while read f; do
- [ -e "$f" ] && continue
- echo missing: "$f"; exit 1
- done
- exit 0
-}
-
-function ask_mrproper()
-{
- echo ""
- echo "--------------------------------------------------"
- echo "!!! WARNING !!! WARNING !!! WARNING !!!WARNING !!!"
- echo "--------------------------------------------------"
- echo "All files they are not part of the CVS source tree"
- echo " and they not registered in .filelist-devel"
- echo " will be killed."
- echo ""
- echo -n "Please type yyeess if you are know what you do: "
- read answer
- test "$answer" != "yyeess" && exit 1
- exit 0
-}
-
-function ask() # $1=Question $2=Answer for TRUE
-{
- echo ""
- echo -n "$1 : "
- read answer
- test "$answer" != "$2" && exit 1
- exit 0
-}
+++ /dev/null
-#!/bin/sh
-
-# create filelist using CVS Entries files
-#
-# Parameter 1: base directory where we're looking for the first CVS directory
-# Parameter 2: insert directory name "$2" at the beginning of
-# resulting filenames
-#
-# foo> ./tools/mkfilelist . gpsbabel-1.2.8/
-#
-# creates a output like the this:
-#
-# ...
-# gpsbabel-1.2.8/win32/gui-2/options.pas
-# gpsbabel-1.2.8/win32/gui-2/utils.pas
-# gpsbabel-1.2.8/win32/gui-2/GPSBabelGUI.res
-# gpsbabel-1.2.8/win32/GPSBabelGUI.exe
-# gpsbabel-1.2.8/copilot.c
-# gpsbabel-1.2.8/gcdb.c
-# gpsbabel-1.2.8/fatal.c
-# ...
-
-function loop()
-{
- test -f "$1/CVS/Entries" || return 0
-
- case $1 in
- /) return 0;;
- esac
-
- IFS="/"
- cat "$1/CVS/Entries" |
- while read LINE; do
- echo "$LINE" |
- (
- read LEAD NAME READ
- test "x$NAME" = "x" && continue
- case $LEAD in
- D)
- loop "$1/$NAME/" "$2"
- ;;
- *)
- echo "$2$1/$NAME"
- ;;
- esac
- )
- done
- IFS=" "
-}
-
-loop "$1" "$2" | sed -e 's|\/\/|\/|g' -e 's|\.\.|\.|g' -e 's|\.\/||g'
+++ /dev/null
-#!/bin/sh
-
-#
-# delete all files listed in .cvsignore
-#
-
-find . -type d |
-while read dirname; do
- test -s "$dirname/.cvsignore" || continue
- while read filemask; do
- test -z "$filemask" && continue
- cmd="rm -Rfv $dirname/$filemask"
- ${cmd}
- done < "$dirname/.cvsignore"
-done
+++ /dev/null
-#!/bin/sh
-#
-
-WEB=$1
-VERSION=$2
-RELEASE=$3
-
-SPEC=gpsbabel.spec
-TAR_IGNORE="--exclude CVS"
-
-if test -x /usr/bin/rpmbuild; then
- RPM=rpmbuild
-else
- RPM=rpm
-fi
-
-test -f gpsbabel.html || exit 1
-
-SRC=`pwd`
-TEMPDIR=/tmp/gpsbabel-rpm.$$
-
-mkdir -p $TEMPDIR
-trap "rm -fr $TEMPDIR" 0 1 2 3 15
-
-mkdir -p $TEMPDIR/BUILD $TEMPDIR/RPMS $TEMPDIR/SPECS \
- $TEMPDIR/SOURCES $TEMPDIR/SRPMS $TEMPDIR/TMP $TEMPDIR/install
-
-echo "Generate rpm spec file..."
-sh $SRC/tools/mkspec "$WEB" "$VERSION" "$RELEASE" > "$TEMPDIR/SPECS/gpsbabel.spec"
-cp -apr ./ $TEMPDIR/TMP/gpsbabel-$VERSION
-
-#
-pushd $TEMPDIR/TMP/gpsbabel-$VERSION
-echo "Cleaning source..."
-make more-clean > /dev/null 2>&1
-find . -type d -name CVS -exec rm -rf \{\} \; > /dev/null 2>&1
-find . -type d -name "autom4*" -exec rm -rf \{\} \; > /dev/null 2>&1
-
-echo "Add needed files..."
-cp -ap $SRC/gpsbabel.html ./
-cp -ap $SRC/CHANGELOG ./
-
-echo "Create rpm source tarball..."
-cd ..
-# --verbose
-tar --owner=0 --group=0 -czf ../SOURCES/gpsbabel-$VERSION.tgz gpsbabel-$VERSION
-echo "And now create rpm packages..."
-${RPM} -ba \
- --define "_topdir $TEMPDIR" \
- --define "buildroot $TEMPDIR/install" \
- $TEMPDIR/SPECS/gpsbabel.spec
-find ../. -type f -name "*.rpm" -exec cp -apf \{\} /tmp/ \;
+++ /dev/null
-:
-
-# Simple script to regenerate GPSBabel test files.
-# This is most useful when you make a change to an output module that
-# changes the output format trivially.
-#
-# Usage: tools/rebuild [format name]
-#
-# Copyright 2010 Robert Lipe
-
-fatal() {
- echo $*
- exit 1
-}
-
-kml() {
- ./gpsbabel \
- -i gpx -f reference/expertgps.gpx \
- -o kml,track=1 -F reference/earth-expertgps-track.kml \
- -o kml,track=0 -F reference/earth-expertgps.kml
-
- ./gpsbabel \
- -i gpx -f reference/track/segmented_tracks.gpx \
- -o kml,track=0 -F reference/track/segmented_tracks.kml \
- -o kml,track=1 -F reference/track/segmented_tracks-track.kml
-
-
- ./gpsbabel \
- -i gtrnctr -f reference/track/gtrnctr_power.tcx \
- -o kml,track=0 -F reference/track/gtrnctr_power-kml.kml \
- -o kml,track=1,points=0,lines=0 -F reference/track/gtrnctr_power-kml.kml
-
- ./gpsbabel \
- -i gpx -f reference/track/gpx_garmin_extensions.gpx \
- -o kml,track=1 -F reference/track/gpx_garmin_extensions-kml_track.kml
-
- ./gpsbabel \
- -i gpx -f reference/gc/GC7FA4.gpx -f reference/gc/GCGCA8.gpx \
- -o kml -F reference/earth-gc.kml
-
- # Validate all our KML
- find reference -name \*.kml | xargs -n 1 SAX2Count || fatal "Validation error"
- }
-
-# Inhibit timestamps in generated files.
-export GPSBABEL_FREEZE_TIME=1
-$1
+++ /dev/null
-0) Ensure 'changes' file is up to date.
- Regenerate capabilties. (done by 'make doc')
- Refresh public web version.
-1) Bump version in configure.ac. Commit that.
-2) Go to empty directory. Check out tree.
-3) 'make release'
-4) Visit https://sourceforge.net/project/admin/editpackages.php?group_id=58972
- to make new releases public.
-5) Send announcemnts to gpsbabel-announce, gpsbabel-misc, gpsbabel-code,
- freshmeat, geocaching forums, various yahoo groups (which?)